.NET Reflector Support: Does .NET Reflector support unmanaged code?

Comments 0

Share to social media

The answer to this is, unfortunately, no. .NET Reflector will work with any managed assemblies from .NET 1.0 onwards, and other .NET implementations, such as Mono, but it will not support portable executables-i.e., DLLs and EXEs-containing unmanaged code, such as those generated by Visual Studio 6 and earlier, Delphi (in its pre-.NET incarnation), VB6 or earlier (i.e. VB-classic), or any other language that does not compile to a managed assembly.

To complicate matters, in Visual Studio .NET 2002, 2003, Visual Studio 2005, and 2008, it’s possible to compile C++ as managed or unmanaged code. .NET Reflector supports assemblies compiled with managed C++, but not portable executables compiled with unmanaged C++. If you’re using one of these versions of Visual Studio with C++ and .NET Reflector complains that your DLL or EXE “does not contain a CLI header,” it means you are using unmanaged C++.

It’s also possible that you might see this message where assemblies have been protected with certain obfuscators.

Load comments

About the author

Bart is a project manager for Red Gate Software Ltd. He's currently looking after the .NET Reflector Pro project. Previously he's working on ANTS Memory Profiler, ANTS Performance Profiler, SQL Prompt, and has touched the code for most of the Red Gate SQL developer tools... some of them still haven't recovered from the shock. He was born and grew up in Dorset, was educated in Nottingham and London, and likes music and real ale. His photo is extremely misleading.

Bart Read's contributions